/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * File Name          : freertos.c
  * Description        : Code for freertos applications
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2025 STMicroelectronics.
  * All rights reserved.</center></h2>
  *
  * This software component is licensed by ST under Ultimate Liberty license
  * SLA0044, the "License"; You may not use this file except in compliance with
  * the License. You may obtain a copy of the License at:
  *                             www.st.com/SLA0044
  *
  ******************************************************************************
  */
/* USER CODE END Header */

/* Includes ------------------------------------------------------------------*/
#include "FreeRTOS.h"
#include "task.h"
#include "main.h"
#include "cmsis_os.h"
#include <string.h>
#include "usart.h"
#include "com.h"
#include "timemanage.h"
#include "motorcontrol.h"
#include "w25q16.h"
#include "taskStorage.h"
#include "taskICU.h"
#include "tasksendudp.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */     

/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */

/* USER CODE END PD */

/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN Variables */

/* USER CODE END Variables */
osThreadId timeManageHandle;
osThreadId comHandle;
osThreadId motorControlHandle;
osThreadId storgeHandle;
osThreadId inputCaptureHandle;
osThreadId mySendUdpHandle;

/* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN FunctionPrototypes */
   
/* USER CODE END FunctionPrototypes */



void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */


/**
  * @brief  FreeRTOS initialization
  * @param  None
  * @retval None
  */
void MX_FREERTOS_Init(void) {
  /* USER CODE BEGIN Init */
       
  /* USER CODE END Init */

  /* USER CODE BEGIN RTOS_MUTEX */
  /* add mutexes, ... */
  /* USER CODE END RTOS_MUTEX */

  /* USER CODE BEGIN RTOS_SEMAPHORES */
  /* add semaphores, ... */
  /* USER CODE END RTOS_SEMAPHORES */

  /* USER CODE BEGIN RTOS_TIMERS */
  /* start timers, add new ones, ... */
  /* USER CODE END RTOS_TIMERS */

  /* USER CODE BEGIN RTOS_QUEUES */
  /* add queues, ... */
  /* USER CODE END RTOS_QUEUES */
 // 开启 任务初始化
	 taskComInit();
	 taskTimeManageInit();
   taskICUInit();
   W25Q16_Init();
	 taskStorgeInit();
   taskMotorControlInit();
  /* Create the thread(s) */
  /* definition and creation of timeManage */
  osThreadDef(timeManage, timeManageTask, osPriorityNormal, 0, 128);
  timeManageHandle = osThreadCreate(osThread(timeManage), NULL);

  /* definition and creation of com */
  osThreadDef(com, comTask, osPriorityNormal, 0, 128);
  comHandle = osThreadCreate(osThread(com), NULL);

  /* definition and creation of motorControl */
  osThreadDef(motorControl, taskMotorControl, osPriorityHigh, 0, 256);
  motorControlHandle = osThreadCreate(osThread(motorControl), NULL);

  /* definition and creation of storge */
  osThreadDef(storge, taskStorge, osPriorityHigh, 0, 256);
  storgeHandle = osThreadCreate(osThread(storge), NULL);

  /* definition and creation of inputCapture */
  osThreadDef(inputCapture, inputCaptureTask, osPriorityNormal, 0, 256);
  inputCaptureHandle = osThreadCreate(osThread(inputCapture), NULL);

  /* definition and creation of mySendUdp */
  osThreadDef(mySendUdp, mySendUdpTask, osPriorityNormal, 0, 128);
  mySendUdpHandle = osThreadCreate(osThread(mySendUdp), NULL);

  /* USER CODE BEGIN RTOS_THREADS */
  /* add threads, ... */
  /* USER CODE END RTOS_THREADS */

}

/* Private application code --------------------------------------------------*/
/* USER CODE BEGIN Application */
     
/* USER CODE END Application */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
